home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
tex
/
meta27
/
mfpandor.lzh
/
caps.mf
next >
Wrap
Text File
|
1990-11-16
|
38KB
|
993 lines
%*****************************************************************************
% Copyright (c) 1989 by N. N. Billawala
%*****************************************************************************
% caps.mf uppercase roman alphabet
% 26 characters
iff OK "A": "The letter A";
beginchar("A",A_w*width#+e_mono#,cap#,0);
min_limit(join_radius)(.5apex.uc);
top z20=(.5w,h+ov_apex.uc)//; pos20(apex.uc,0-apex_angle);
bot y3=0; z3l=whatever[z20l,(0,0)];
bot y6=0; z6r=whatever[z20r,(w,0)];
z20l=z1l; z20r=z4r;
multpos(1,3)(thin_stem.uc,constant_angle(z20l,(0,0),0));
multpos(4,6)(stem.uc,constant_angle(z20r,(w,0),0));
onaline(1l,3l)(2l); y2l=y5r=cap_bracket_h;
onaline(1r,3r)(2r,40,41,44);
onaline(4l,6l)(5l,40,42,43);
y41=y42=round(.45[serif_thickness,y40]-.35thin_stem.uc); % bar bottom
y43=y44=y41+max(1,.7thin_stem.uc);
onaline(4r,6r)(5r); y2r=y5l=min(y41,cap_bracket_h);
ref1=z43--z40--z44;
p1 =(fullserif.l(z3,z1,z2l,z2r,.5hs,.5hs) soften(z41,z42)
fullserif.r(z6,z4,z5l,z5r,.5hs,.5hs) soften(z20r,z20l) z2l)--cycle;
p1'=upnotch(ref1,angle(z20-z40),notch_length.uc)--cycle;
showpoints(1,2,3,4,5,6,20,40,41,42,43,44);
adjust(v_E*fitbasis.uc#+m_a*e_mfit#,v_D*fitbasis.uc#+m_a*e_mfit#);
show_character; endchar;
iff OK "B": "The letter B";
beginchar("B",B_w*width#+b_mono#,cap#,0);
top lft z11l=(0,h)//; multpos(11,14)(stem.uc,0);
bot lft z14l=(0,0);
onaline(11l,14l)(12l,13l); y13l=cap_bracket_h;
onaline(11r,14r)(1,5,5l,5r,9); y12l=max(h-cap_bracket_h,y13l);
top y2r=h;
bot y1=bot y2l=top y2r-minor_curve.uc;
y5=.55h;
top y4r=top y5r=round(y5+.45thin_stem.uc);
bot y4l=bot y5l=top y5r-max(1,.9thin_stem.uc);
y6=.75[y5l,y5r];
bot y8r=0; top y8l=top y9=bot y8r+minor_curve.uc;
rt z3r=(round(.9w),v_stress[y6,y2r])//;
lft z3l=(rt x3r-max(1,.9bowlstem.uc),v_stress[y5r,y2l]);
rt z7r=(w,v_stress[y8r,y6])//; lft z7l=(rt x7r-bowlstem.uc,v_stress[y8l,y4l]);
z3=.5[z3l,z3r];
good_x_for(2r)(z1,z3r,.4)a; good_x_for(2l)(z1,z3l,.4)b;
good_x_for(4r)(z5r,z3l,.4)c; good_x_for(4l)(z5l,z7l,.4)d;
good_x_for(6)(z5,z3,.6)e;
good_x_for(8l)(z9,z7l,.4)f; good_x_for(8r)(z9,z7r,.4)g;
p1 =leftserif(z11,z14,z12l,z14r,.5hs)--leftserif(z14,z11,z13l,z11r,.5hs)
...z8r{right} o_t z7r{upward} o_t z6{left}--
z6+(0,epsilon){right} o_t z3r{upward} o_t z2r{left}...cycle;
p1'=z4r{right} i_t z3l{upward} i_t z2l{left}...z1--z5r...cycle;
p2'=z8l{right} i_t z7l{upward} i_t z4l{left}...z5l--z9...cycle;
showpoints(1,2,3,4,5,6,7,8,9,11,12,13,14);
adjust(v_A*fitbasis.uc#+m_b*b_mfit#,v_F*fitbasis.uc#+m_bb*b_mfit#);
show_character; endchar;
iff OK "C": "The letter C";
beginchar("C",H_w*width#+d_mono#,cap#,0);
save_num(term_length)=if bulb_taper:c_and_s.uc else:cs fi;
rt z1=(.95w,.9h)//;
lft z3l=(0,(1-v_stress)*h)//; rt z3r=lft z3l+(bowlstem.uc,0);
rt z5l=(w,major_curve.uc-ov_t.uc+.05h)//;
top y2l=bot y2r+minor_curve.uc=h+ov_t.uc;
bot y4l=top y4r-major_curve.uc=-ov_t.uc;
good_x_for(2l)(z3l,z1,.6)a; good_x_for(2r)(z3r,z1-(bulb_thickness,0),.6)b;
good_x_for(4l)(z3l,z5l,.5)c;
ref1=z4l{right}...z5l;
pos5(max(1,.7major_curve.lc),angle(direction 1 of ref1)+90);
good_x_for(4r)(z3r,z5r,.5)d;
x4r:=min(x4r,x4l+minor_curve.uc);
p1=(bulb.tr(z1,z2r,z2l,term_length,bulb_thickness,90) o_t
z3l{downward} o_t z4l{right} o_t z5l
if softpath:)softjoin(z5l--z5r)softjoin(else:--fi
z5r i_t z4r{left} i_t z3r{upward} i_t z2r{right})--cycle;
showpoints(1,2,3,4,5);
adjust(v_C*fitbasis.uc#+m_d*d_mfit#,v_H*fitbasis.uc#+m_dd*d_mfit#);
show_character; endchar;
iff OK "D": "The letter D";
beginchar("D",D_w*width#+d_mono#,cap#,0);
top lft z11l=(0,h)//; multpos(11,14)(stem.uc,0);
bot lft z14l=(0,0);
onaline(11l,14l)(12l,13l); y13l=cap_bracket_h;
onaline(11r,14r)(1,5); y12l=max(h-cap_bracket_h,y13l);
top y2r=h;
bot y1=bot y2l=top y2r-major_curve.uc;
bot y4r=0;
top y5=top y4l=bot y4r+minor_curve.uc;
rt z3r=(w,v_stress*h)//; lft z3l=(rt x3r-bowlstem.uc,v_stress*h);
good_x_for(2r)(z1,z3r,.4)a; good_x_for(2l)(z1,z3l,.4)b;
good_x_for(4r)(z5,z3r,.3)c; good_x_for(4l)(z5,z3l,.3)d;
p1 =leftserif(z11,z14,z12l,z14r,.5hs)--leftserif(z14,z11,z13l,z11r,.5hs)
...z4r{right} o_t z3r{upward} o_t z2r{left}...cycle;
p1'=(z4l{right} i_t z3l{upward} i_t z2l{left} soften(z1,z5)z4l{right})--cycle;
showpoints(1,2,3,4,5,11,12,13,14);
adjust(v_A*fitbasis.uc#+m_b*d_mfit#,v_C*fitbasis.uc#+m_bb*d_mfit#);
show_character; endchar;
iff OK "E": "The letter E";
beginchar("E",E_w*width#+b_mono#,cap#,0);
top lft z11l=(0,h)//; multpos(11,14)(stem.uc,0);
bot lft z14l=(0,0);
onaline(11l,14l)(12l,13l); y13l=cap_bracket_h;
onaline(11r,14r)(1,4,4l,4r,6); y12l=max(h-cap_bracket_h,y13l);
top y2r=h;
bot y1=bot y2l=top y2r-max(1,.95thin_stem.uc);
top rt z3=(.95w,h)//;
bot y7l=0;
bot rt z8=(w,0);
top y6=top y7r=bot y7l+max(1,.97thin_stem.uc);
y4=.55h;
top y4r=bot y4l+max(1,.9thin_stem.uc)=top y5r=round(y4+.45thin_stem.uc);
good_x_for(2r)(z1,z3,.6)a; good_x_for(2l)(z1,z3,.6)b;
good_x_for(7r)(z6,z8,.6)c; good_x_for(7l)(z6,z8,.6)d;
good_x_for(5r)(z4,z3,.8)e;
p1=(leftserif(z14,z11,z13l,z11r,.5hs)..
arm.br(z8,z7r,z7l,.5as,.75tip_thickness,90-arm_angle)soft soften(z6,z4l)
arm.tr(z5r,z4l,z4r,.15as,.25tip_thickness,90) soften(z4r,z1)
arm.tr(z3,z2l,z2r,.4as,.75tip_thickness,90)soft...
leftserif(z11,z14,z12l,z14r,.75hs))--cycle;
showpoints(1,2,3,4,5,6,7,11,12,13,14);
adjust(v_A*fitbasis.uc#+m_b*b_mfit#,v_F*fitbasis.uc#+m_bb*b_mfit#);
show_character; endchar;
iff OK "F": "The letter F";
beginchar("F",E_w*width#+b_mono#,cap#,0);
top y2r=h;
bot y1=bot y2l=top y2r-max(1,.95thin_stem.uc);
top rt z3=(w,h)//;
top y4r=bot y4l+max(1,.9thin_stem.uc)=top y5r=round(.52h);
top lft z11l=(0,h)//; multpos(11,14)(stem.uc,0);
bot lft z14l=(0,0);
onaline(11l,14l)(12l,13l); y13l=cap_bracket_h; y13r=min(y13l,y4l);
onaline(11r,14r)(1,4l,4r,13r); y12l=max(h-cap_bracket_h,y13l);
good_x_for(2r)(z1,z3,.6)a; good_x_for(2l)(z1,z3,.6)b;
good_x_for(5r)(z4r,z3,.8)c;
p1=(fullserif(z14,z11,z13l,z13r,.5hs,.75hs)..z4l
if softpath:)softjoin(else:--fi
arm.tr(z5r,z4l,z4r,.15as,.25tip_thickness,90) soften(z4r,z1)
arm.tr(z3,z2l,z2r,.4as,.75tip_thickness,90)soft...
leftserif(z11,z14,z12l,z14r,.75hs))--cycle;
showpoints(1,2,3,4,5,11,12,13,14);
adjust(v_A*fitbasis.uc#+m_b*b_mfit#,v_G*fitbasis.uc#+m_bb*b_mfit#);
show_character; endchar;
def character_points=
iff OK "G": "The letter G";
beginchar(71+alt9,D_w*width#+d_mono#,cap#,0);
save_num(term_length)=if bulb_taper:c_and_s.uc else:cs fi;
rt z1=(w-.25stem.uc,.9h)//;
lft z3l=(0,(1-v_stress)*h)//; rt z3r=(lft x3l+bowlstem.uc,(1-v_stress)*h);
top y2l=bot y2r+minor_curve.uc=h+ov_t.uc;
bot y4l=top y4r-major_curve.uc=-ov_t.uc;
good_x_for(2l)(z3l,z1,.6)a; good_x_for(2r)(z3r,z1-(bulb_thickness,0),.6)b;
good_x_for(4l)(z3l,z5l,.5)c; good_x_for(4r)(z3r,z5r,.5)d;
rt z5l=(w,.15h)//; pos5(max(1,.75minor_curve.uc),130-oblique);
z11r=(w,min(.45h,y1-as))//; multpos(11,13)(stem.uc,0);
rt z13r=(w,0);
z20=(z5l--z5r i_t z4r{left})intersectionpoint(z11l--z13l);
onaline(11r,13r)(12r);
y12r=inlimit(y11r-cap_bracket_h)(y5l,y11r-serif_thickness);
onaline(11l,13l)(12l); y12l=inlimit(y12r)(y20,y11l);
ref1=z4l{right} o_t z5l; ref2=z13--z20; % pts added for terminal finish
z21=ref1 intersectionpoint ref2;
(t1,t2)=ref1 intersectiontimes ref2;
p1=(bulb.tr(z1,z2r,z2l,term_length,bulb_thickness,90) o_t z3l{downward} o_t
if G_spur:subpath (0,t1) of ref1 soften(z21,z13,z13r) % spur option
else:z4l{right} o_t z5l if softpath:)softjoin( else:--fi fi
z5l--fullserif.r(z11,z13,z12l,z12r,.75hs,.25hs)--z20
if softpath:)softjoin( else:--fi
z20 i_t z4r{left} i_t z3r{upward} i_t z2r{right})--cycle;
show